package com.qidian.tcba.admin.service.impl;

import com.qidian.tcba.admin.model.dto.parkLot.ParkLotBaseInfoDTO;
import com.qidian.tcba.admin.model.dto.parkLot.ParkLotInfoDTO;
import com.qidian.tcba.admin.model.dto.parkLot.ParkLotManagerBaseInfoDTO;
import com.qidian.tcba.admin.model.dto.parkLot.ParkLotSettingInfoDTO;
import com.qidian.tcba.admin.model.entity.ParkLotRecordTaskLastChange;
import com.qidian.tcba.admin.service.ParkLotRecordTaskLastChangeService;
import com.qidian.tcba.admin.service.ParkLotRecordTaskService;
import com.qidian.tcba.dao.ParkLotRecordTaskLastChangeMapper;
import com.qidian.tcba.dao.ParkLotRecordTaskMapper;
import com.qidian.tcba.utils.BeanMapper;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 停车场备案任务上一次提交备份表 服务实现类
 * </p>
 *
 * @author 冯永龙
 * @since 2021-07-06
 */
@Service
public class ParkLotRecordTaskLastChangeServiceImpl implements ParkLotRecordTaskLastChangeService {
    private final ParkLotRecordTaskLastChangeMapper parkLotRecordTaskLastChangeMapper;

    private final ParkLotRecordTaskService parkLotRecordTaskService;

    public ParkLotRecordTaskLastChangeServiceImpl(ParkLotRecordTaskLastChangeMapper parkLotRecordTaskLastChangeMapper, ParkLotRecordTaskMapper parkLotRecordTaskMapper, ParkLotRecordTaskService parkLotRecordTaskService) {
        this.parkLotRecordTaskLastChangeMapper = parkLotRecordTaskLastChangeMapper;
        this.parkLotRecordTaskService = parkLotRecordTaskService;
    }

    @Override
    public Map<String, ParkLotInfoDTO> getTaskLastChange(int id) {
        ParkLotRecordTaskLastChange lastChange = parkLotRecordTaskLastChangeMapper.findByParkRecordTaskId(id);
        ParkLotManagerBaseInfoDTO managerBaseInfoDTO = BeanMapper.map(lastChange, ParkLotManagerBaseInfoDTO.class);
        ParkLotBaseInfoDTO parkLotBaseInfoDTO = BeanMapper.map(lastChange, ParkLotBaseInfoDTO.class);
        ParkLotSettingInfoDTO settingInfoDTO = BeanMapper.map(lastChange, ParkLotSettingInfoDTO.class);
        ParkLotInfoDTO parkLotInfoDTO = new ParkLotInfoDTO(managerBaseInfoDTO,parkLotBaseInfoDTO,settingInfoDTO);
        Map<String, ParkLotInfoDTO> map = new HashMap<>();
        map.put("old",parkLotInfoDTO);
        ParkLotInfoDTO parkLotInfo = parkLotRecordTaskService.getParkLotInfo(id);
        map.put("new",parkLotInfo);
        return map;
    }
}
